home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / librw / RWDate.z / RWDate
Encoding:
Text File  |  2002-10-03  |  28.2 KB  |  727 lines

  1.  
  2.  
  3.  
  4. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  5.  
  6.  
  7.  
  8. NNNNaaaammmmeeee
  9.      RWDate - Rogue Wave library class
  10.  
  11. SSSSyyyynnnnooooppppssssiiiissss
  12.               #include <rw/rwdate.h>RWDate a;   // Construct today's date
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. DDDDeeeessssccccrrrriiiippppttttiiiioooonnnn
  21.      Class RRRRWWWWDDDDaaaatttteeee represents a date, stored as a Julian day number.  The
  22.      member function iiiissssVVVVaaaalllliiiidddd(((()))) can be used to determine whether an RRRRWWWWDDDDaaaatttteeee is a
  23.      valid date.  For example, iiiissssVVVVaaaalllliiiidddd(((()))) would return FFFFAAAALLLLSSSSEEEE for the date 29
  24.      February 1991 because 1991 is not a leap year.  See "Using Class RRRRWWWWDDDDaaaatttteeee"
  25.      in the TTTToooooooollllssss....hhhh++++++++ UUUUsssseeeerrrr''''ssss GGGGuuuuiiiiddddeeee.  RRRRWWWWDDDDaaaatttteeee's can be converted to and from
  26.      RRRRWWWWTTTTiiiimmmmeeee's, and to and from the Standard C library type ssssttttrrrruuuucccctttt ttttmmmm defined
  27.      in <<<<ttttiiiimmmmeeee....hhhh>>>>.  Note that using a 2-digit year specifier in your code may
  28.      lead to less-than-perfect behavior at the turn of the century. We urge
  29.      you to create programs that are "millenially correct" by using 4-digit
  30.      year specifiers.  Note that because the default constructor for this
  31.      class creates an instance holding the current date, constructing a large
  32.      array of RRRRWWWWDDDDaaaatttteeee may be slow.
  33.  
  34.               RWDate v[5000];     // Figures out the current date 5000 times
  35.  
  36.  
  37.  
  38.  
  39.  
  40.      Those with access to the Standard C++ Library-based versions of the
  41.      TTTToooooooollllssss....hhhh++++++++ template collections should consider the following:
  42.  
  43.               // Figures out the current date just once:
  44.  
  45.  
  46.  
  47.               RWTValOrderedVector<RWDate> v(5000, RWDate());
  48.  
  49.  
  50.      Thanks to the smart allocation scheme of the standard collections, the
  51.      above declaration will result in only one call to the default constructor
  52.      followed by 5000 invocations of the copy constructor.  In the case of
  53.      RRRRWWWWDDDDaaaatttteeee,,,, the copy constructor amounts to an assignment of one lllloooonnnngggg to
  54.      another, resulting in faster creation than the simple array.
  55.  
  56. PPPPeeeerrrrssssiiiisssstttteeeennnncccceeee
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  71.  
  72.  
  73.  
  74.      Simple
  75.  
  76. EEEExxxxaaaammmmpppplllleeee
  77.               #include <rw/rwdate.h>
  78.           #include <rw/rstream.h>
  79.           main(){
  80.             // Today's date
  81.             RWDate d;
  82.             // Last Sunday's date:
  83.             RWDate lastSunday = d.previous("Sunday");
  84.             cout << d << endl << lastSunday << endl;
  85.           }
  86.  
  87.  
  88.      PPPPrrrrooooggggrrrraaaammmm oooouuuuttttppppuuuutttt::::
  89.  
  90.               03/22/91
  91.  
  92.  
  93.  
  94. PPPPuuuubbbblllliiiicccc CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
  95.               03/17/91
  96.  
  97.  
  98.  
  99.               RWDate();
  100.  
  101.  
  102.      Default constructor.  Constructs an RRRRWWWWDDDDaaaatttteeee with the present date.
  103.  
  104.               RWDate(const RWDate&);
  105.  
  106.  
  107.      Copy constructor.
  108.  
  109.               RWDate(unsigned day, unsigned year);
  110.  
  111.  
  112.      Constructs an RRRRWWWWDDDDaaaatttteeee with a given day of the year and a given year.  The
  113.      member function iiiissssVVVVaaaalllliiiidddd(((()))) can be used to test whether the results are a
  114.      valid date.
  115.  
  116.               RWDate(unsigned day, unsigned month, unsigned year);
  117.  
  118.  
  119.      Constructs an RRRRWWWWDDDDaaaatttteeee with the given day of the month, month of the year,
  120.      and year.  Days should be 1-31, months should be 1-12, and the year may
  121.      be specified as (for example) 1990, or 90.  The member function iiiissssVVVVaaaalllliiiidddd(((())))
  122.      can be used to test whether the results are a valid date.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  137.  
  138.  
  139.  
  140.               RWDate(unsigned day, const char* mon, unsigned year,
  141.                  const RWLocale& locale = RWLocale::global());
  142.  
  143.  
  144.      Constructs an RRRRWWWWDDDDaaaatttteeee with the given day of the month, month and year.
  145.      The locale argument is used to convert the month name.  Days should be
  146.      1-31, months may be specified as (for example): January, JAN, or Jan, and
  147.      the year may be specified as (for example) 1990, or 90.  The member
  148.      function iiiissssVVVVaaaalllliiiidddd(((()))) can be used to test whether the results are a valid
  149.      date.
  150.  
  151.               RWDate(istream& s,const RWLocale& locale =
  152.                  RWLocale::global());
  153.  
  154.  
  155.      A full line is read, and converted to a date by the locale argument.  The
  156.      member function iiiissssVVVVaaaalllliiiidddd(((()))) must be used to test whether the results are a
  157.      valid date.  Because RRRRWWWWLLLLooooccccaaaalllleeee cannot rigorously check date input, dates
  158.      created in this way should also be reconfirmed by the user.
  159.  
  160.               RWDate(const RWCString& str,
  161.                  const RWLocale& locale = RWLocale::global());
  162.  
  163.  
  164.      The string ssssttttrrrr is converted to a date.  The member function iiiissssVVVVaaaalllliiiidddd(((())))
  165.      must be used to test whether the results are a valid date.  Because
  166.      RRRRWWWWLLLLooooccccaaaalllleeee cannot rigorously check date input, dates created in this way
  167.      should also be reconfirmed by the user.
  168.  
  169.               RWDate(const RWTime& t,
  170.                  const RWZone& zone = RWZone::local());
  171.  
  172.  
  173.      Constructs an RRRRWWWWDDDDaaaatttteeee from an RRRRWWWWTTTTiiiimmmmeeee.  The time zone used defaults to
  174.      local.  The member function iiiissssVVVVaaaalllliiiidddd(((()))) must be used to test whether the
  175.      results are a valid date.
  176.  
  177.               RWDate(const struct tm*);
  178.  
  179.  
  180.      Constructs an RRRRWWWWDDDDaaaatttteeee from the contents of the ssssttttrrrruuuucccctttt ttttmmmm argument members
  181.      ttttmmmm____yyyyeeeeaaaarrrr, ttttmmmm____mmmmoooonnnn, and ttttmmmm____mmmmddddaaaayyyy.  Note that the numbering of months and
  182.      years used in ssssttttrrrruuuucccctttt ttttmmmm differs from that used for RRRRWWWWDDDDaaaatttteeee and RRRRWWWWTTTTiiiimmmmeeee
  183.      operations.  ssssttttrrrruuuucccctttt ttttmmmm is declared in the standard include file <<<<ttttiiiimmmmeeee....hhhh>>>>....
  184.  
  185.               RWDate(unsigned long jd);
  186.  
  187.  
  188.      Construct a date from the Julian Day number jjjjdddd.  Note that it is possible
  189.      to construct a valid RRRRWWWWDDDDaaaatttteeee which represents a day previous to the
  190.      beginning of the Gregorian calendar for some locality.  Rogue Wave
  191.      doesn't know the specifics for your locality, so will not enforce an
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  203.  
  204.  
  205.  
  206.      arbitrary cutoff for "validity."
  207.  
  208. PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrr OOOOppppeeeerrrraaaattttoooorrrrssss
  209.               RWDate&
  210.           ooooppppeeeerrrraaaattttoooorrrr====(const RWDate&);
  211.  
  212.  
  213.      Assignment operator.
  214.  
  215.               RWDate
  216.           ooooppppeeeerrrraaaattttoooorrrr++++++++();
  217.  
  218.  
  219.      Prefix increment operator.  Adds one day to self, then return the result.
  220.  
  221.               RWDate
  222.           ooooppppeeeerrrraaaattttoooorrrr--------();
  223.  
  224.  
  225.      Prefix decrement operator.  Subtracts one day from self, then returns the
  226.      result.
  227.  
  228.               RWDate
  229.           ooooppppeeeerrrraaaattttoooorrrr++++++++(int);
  230.  
  231.  
  232.      Postfix increment operator.  Adds one day to self, returning the initial
  233.      value.
  234.  
  235.               RWDate
  236.           ooooppppeeeerrrraaaattttoooorrrr--------(int);
  237.  
  238.  
  239.      Postfix decrement operator.  Subtracts one day from self, returning the
  240.      initial value.
  241.  
  242.               RWDate&
  243.           ooooppppeeeerrrraaaattttoooorrrr++++====(unsigned long s);
  244.  
  245.  
  246.      Adds ssss days to self, returning self.
  247.  
  248.               RWDate&
  249.           ooooppppeeeerrrraaaattttoooorrrr----====(unsigned long s);
  250.  
  251.  
  252.      Substracts ssss days from self, returning self.
  253.  
  254. PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrr FFFFuuuunnnnccccttttiiiioooonnnnssss
  255.               RWCString
  256.           aaaassssSSSSttttrrrriiiinnnngggg(char format = 'x',
  257.                    const RWLocale& = RWLocale::global()) const;
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  269.  
  270.  
  271.  
  272.      Returns the date as a string, formatted by the RRRRWWWWLLLLooooccccaaaalllleeee argument.
  273.      Formats are as defined in the standard C library function ssssttttrrrrffffttttiiiimmmmeeee(((()))).
  274.  
  275.               RWCString
  276.           aaaassssSSSSttttrrrriiiinnnngggg(const char* format,
  277.                    const RWLocale& = RWLocale::global()) const;
  278.  
  279.  
  280.      Returns the date as a string, formatted by the RRRRWWWWLLLLooooccccaaaalllleeee argument.
  281.      Formats are as defined in the standard C library function ssssttttrrrrffffttttiiiimmmmeeee(((()))).
  282.  
  283.               RWBoolean
  284.           bbbbeeeettttwwwweeeeeeeennnn(const RWDate& a, const RWDate& b) const;
  285.  
  286.  
  287.      Returns TTTTRRRRUUUUEEEE if this RRRRWWWWDDDDaaaatttteeee is between aaaa and bbbb, inclusive.
  288.  
  289.               size_t
  290.           bbbbiiiinnnnaaaarrrryyyySSSSttttoooorrrreeeeSSSSiiiizzzzeeee() const;
  291.  
  292.  
  293.      Returns the number of bytes necessary to store the object using the
  294.      global function
  295.  
  296.               RWFile& operator<<(RWFile&, const RWDate&);
  297.  
  298.  
  299.  
  300.               int
  301.           ccccoooommmmppppaaaarrrreeeeTTTToooo(const RWDate* d) const;
  302.  
  303.  
  304.      Compares self to the RRRRWWWWDDDDaaaatttteeee pointed to by dddd and returns:
  305.           0   if self == *dddd;
  306.           1   if self > *dddd;
  307.         -1   if self < *dddd.
  308.  
  309.               unsigned
  310.           ddddaaaayyyy() const;
  311.  
  312.  
  313.      Returns the day of the year (1-366) for this date.
  314.  
  315.               unsigned
  316.           ddddaaaayyyyOOOOffffMMMMoooonnnntttthhhh() const;
  317.  
  318.  
  319.      Returns the day of the month (1-31) for this date.
  320.  
  321.               void
  322.           eeeexxxxttttrrrraaaacccctttt(struct tm*) const;
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  335.  
  336.  
  337.  
  338.      Returns with the ssssttttrrrruuuucccctttt ttttmmmm argument filled out completely, with the time
  339.      members set to 0 and ttttmmmm____iiiissssddddsssstttt set to -1.  Note that the encoding for
  340.      months and days of the week used in ssssttttrrrruuuucccctttt ttttmmmm differs from that used
  341.      elsewhere in RRRRWWWWDDDDaaaatttteeee.  If the date is invalid, all fields are set to -1.
  342.  
  343.               unsigned
  344.           ffffiiiirrrrssssttttDDDDaaaayyyyOOOOffffMMMMoooonnnntttthhhh() const;
  345.  
  346.  
  347.      Returns the day of the year (1-366) corresponding to the first day of
  348.      this RRRRWWWWDDDDaaaatttteeee's month and year.
  349.  
  350.               unsigned
  351.           ffffiiiirrrrssssttttDDDDaaaayyyyOOOOffffMMMMoooonnnntttthhhh(unsigned month) const;
  352.  
  353.  
  354.      Returns the day of the year (1-366) corresponding to the first day of the
  355.      month mmmmoooonnnntttthhhh (1-12) in this RRRRWWWWDDDDaaaatttteeee's year.
  356.  
  357.               unsigned
  358.           hhhhaaaasssshhhh() const;
  359.  
  360.  
  361.      Returns a suitable hashing value.
  362.  
  363.               RWBoolean
  364.           iiiissssVVVVaaaalllliiiidddd() const;
  365.  
  366.  
  367.      Returns TTTTRRRRUUUUEEEE if this is a valid date, FFFFAAAALLLLSSSSEEEE otherwise.  The following two
  368.      functions are provided as a service to users who need to manipulate the
  369.      date representation directly.  TTTThhhheeee jjjjuuuulllliiiiaaaannnn ddddaaaayyyy nnnnuuuummmmbbbbeeeerrrr iiiissss nnnnooootttt tttthhhheeee JJJJuuuulllliiiiaaaannnn
  370.      ddddaaaatttteeee!!!!. The julian day number is calculated using Algorithm 199 from
  371.      CCCCoooommmmmmmmuuuunnnniiiiccccaaaattttiiiioooonnnnssss ooooffff tttthhhheeee AAAACCCCMMMM, Volume 6, No.  8, (Aug. 1963), p. 444 and is
  372.      valid for any valid Gregorian date in the Gregorian calendar.  The
  373.      Gregorian calendar was first introduced on Sep. 14, 1752, and was adopted
  374.      at various times in various places.
  375.  
  376.               unsigned long
  377.           jjjjuuuulllliiiiaaaannnn() const;
  378.  
  379.  
  380.      Returns the value of the julian day number.....
  381.  
  382.               void
  383.           jjjjuuuulllliiiiaaaannnn(unsigned long j);
  384.  
  385.  
  386.      Changes the value of the julian day number to j.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  401.  
  402.  
  403.  
  404.               RWBoolean
  405.           lllleeeeaaaapppp() const;
  406.  
  407.  
  408.      Returns TTTTRRRRUUUUEEEE if the year of this RRRRWWWWDDDDaaaatttteeee is a leap year.
  409.  
  410.               RWDate
  411.           mmmmaaaaxxxx(const RWDate& t) const;
  412.  
  413.  
  414.      Returns the later date of self or tttt.
  415.  
  416.               RWDate
  417.           mmmmiiiinnnn(const RWDate& t) const;
  418.  
  419.  
  420.      Returns the earlier date of self or tttt.
  421.  
  422.               unsigned
  423.           mmmmoooonnnntttthhhh() const;
  424.  
  425.  
  426.      Returns the month (1-12) for this date.
  427.  
  428.               RWCString
  429.           mmmmoooonnnntttthhhhNNNNaaaammmmeeee(const RWLocale& = RWLocale::global()) const;
  430.  
  431.  
  432.      Returns the name of the month for this date, according to the optional
  433.      RRRRWWWWLLLLooooccccaaaalllleeee argument.
  434.  
  435.               RWDate
  436.           nnnneeeexxxxtttt(unsigned dayNum) const;
  437.  
  438.  
  439.      Returns the date of the next numbered day of the week, where MMMMoooonnnnddddaaaayyyy = 1,
  440.      ..., SSSSuuuunnnnddddaaaayyyy = 7.  The variable ddddaaaayyyyNNNNuuuummmm must be between 1 and 7, inclusive.
  441.  
  442.               RWDate
  443.           nnnneeeexxxxtttt(const char* dayName,
  444.                const RWLocale& = RWLocale::global()) const;
  445.  
  446.  
  447.      Returns the date of the next ddddaaaayyyyNNNNaaaammmmeeee (for example, the date of the
  448.      previous Monday)  The weekday name is interpreted according to the
  449.      RRRRWWWWLLLLooooccccaaaalllleeee argument.
  450.  
  451.               RWDate
  452.           pppprrrreeeevvvviiiioooouuuussss(unsigned dayNum) const;
  453.  
  454.  
  455.      Returns the date of the previous numbered day of the week, where MMMMoooonnnnddddaaaayyyy =
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  467.  
  468.  
  469.  
  470.      1, ..., SSSSuuuunnnnddddaaaayyyy = 7.  The variable ddddaaaayyyyNNNNuuuummmm must be between 1 and 7,
  471.      inclusive.
  472.  
  473.               RWDate
  474.           pppprrrreeeevvvviiiioooouuuussss(const char* dayName,
  475.                    const RWLocale& = RWLocale::global()) const;
  476.  
  477.  
  478.      Returns the date of the previous ddddaaaayyyyNNNNaaaammmmeeee (for example, the date of the
  479.      previous Monday)  The weekday name is interpreted according to the
  480.      RRRRWWWWLLLLooooccccaaaalllleeee argument.
  481.  
  482.               RWCString
  483.           wwwweeeeeeeekkkkDDDDaaaayyyyNNNNaaaammmmeeee(const RWLocale& = RWLocale::global()) const;
  484.  
  485.  
  486.      Returns the name of the day of the week for this date, according to the
  487.      optional RRRRWWWWLLLLooooccccaaaalllleeee argument.
  488.  
  489.               unsigned
  490.           wwwweeeeeeeekkkkDDDDaaaayyyy() const;
  491.  
  492.  
  493.      Returns the number of the day of the week for this date, where MMMMoooonnnnddddaaaayyyy =
  494.      1, ..., SSSSuuuunnnnddddaaaayyyy = 7.
  495.  
  496.               unsigned
  497.           yyyyeeeeaaaarrrr() const;
  498.  
  499.  
  500.      Returns the year of this date.
  501.  
  502. SSSSttttaaaattttiiiicccc PPPPuuuubbbblllliiiicccc MMMMeeeemmmmbbbbeeeerrrr FFFFuuuunnnnccccttttiiiioooonnnnssss
  503.               static unsigned
  504.           ddddaaaayyyyOOOOffffWWWWeeeeeeeekkkk(const char* dayName,
  505.                     const RWLocale& = RWLocale::global());
  506.  
  507.  
  508.      Returns the number of the day of the week corresponding to the given
  509.      ddddaaaayyyyNNNNaaaammmmeeee.  "MMMMoooonnnnddddaaaayyyy" = 1, ..., "SSSSuuuunnnnddddaaaayyyy" = 7.  Names are interpreted by the
  510.      RRRRWWWWLLLLooooccccaaaalllleeee argument.  Returns 0 if no match is found.
  511.  
  512.               static unsigned
  513.           ddddaaaayyyyssssIIIInnnnMMMMoooonnnntttthhhhYYYYeeeeaaaarrrr(unsigned month, unsigned year);
  514.  
  515.  
  516.      Returns the number of days in a given month and year. Returns 0 if mmmmoooonnnntttthhhh
  517.      is not between 1 and 12 inclusive.
  518.  
  519.               static unsigned
  520.           ddddaaaayyyyssssIIIInnnnYYYYeeeeaaaarrrr(unsigned year);
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  533.  
  534.  
  535.  
  536.      Returns the number of days in a given year.
  537.  
  538.               static RWBoolean
  539.           ddddaaaayyyyWWWWiiiitttthhhhiiiinnnnMMMMoooonnnntttthhhh(unsigned monthNum, unsigned dayNum,
  540.                          unsigned year);
  541.  
  542.  
  543.      Returns TTTTRRRRUUUUEEEE if a day (1-31) is within a given month in a given year.
  544.  
  545.               static unsigned
  546.           hhhhaaaasssshhhh(const RWDate& d);
  547.  
  548.  
  549.      Returns the hash value of dddd as returned by dddd....hhhhaaaasssshhhh(((()))).
  550.  
  551.               static unsigned
  552.           iiiinnnnddddeeeexxxxOOOOffffMMMMoooonnnntttthhhh(const char* monthName,
  553.                        const RWLocale& = RWLocale::global());
  554.  
  555.  
  556.      Returns the number of the month (1-12) corresponding to the given
  557.      mmmmoooonnnntttthhhhNNNNaaaammmmeeee.  Returns 0 for no match.
  558.  
  559.               static unsigned long
  560.           jjjjddddaaaayyyy(unsigned mon, unsigned day, unsigned year);
  561.  
  562.  
  563.      Returns the Julian day corresponding to the given month (1-12), day (1-
  564.      31) and year.  Returns zero (0) if the date is invalid.
  565.  
  566.               static RWCString
  567.           nnnnaaaammmmeeeeOOOOffffMMMMoooonnnntttthhhh(unsigned monNum,
  568.                       const RWLocale& = RWLocale::global());
  569.  
  570.  
  571.      Returns the name of month mmmmoooonnnnNNNNuuuummmm (JJJJaaaannnnuuuuaaaarrrryyyy = 1, ..., DDDDeeeecccceeeemmmmbbbbeeeerrrr = 12),
  572.      formatted for the given locale.
  573.  
  574.               static RWBoolean
  575.           lllleeeeaaaappppYYYYeeeeaaaarrrr(unsigned year);
  576.  
  577.  
  578.      Returns TTTTRRRRUUUUEEEE if a given year is a leap year.
  579.  
  580.               static RWDate
  581.           nnnnoooowwww();
  582.  
  583.  
  584.      Returns today's date.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  599.  
  600.  
  601.  
  602.               static RWCString
  603.           wwwweeeeeeeekkkkDDDDaaaayyyyNNNNaaaammmmeeee(unsigned dayNum,
  604.                       const RWLocale& = RWLocale::global());
  605.  
  606.  
  607.      Returns the name of the day of the week ddddaaaayyyyNNNNuuuummmm (MMMMoooonnnnddddaaaayyyy = 1, ..., SSSSuuuunnnnddddaaaayyyy =
  608.      7), formatted for the given locale.
  609.  
  610. RRRReeeellllaaaatttteeeedddd GGGGlllloooobbbbaaaallll OOOOppppeeeerrrraaaattttoooorrrrssss
  611.               RWBoolean
  612.           ooooppppeeeerrrraaaattttoooorrrr<<<<(const RWDate& d1, const RWDate& d2);
  613.  
  614.  
  615.      Returns TTTTRRRRUUUUEEEE if the date dddd1111 is before dddd2222.
  616.  
  617.               RWBoolean
  618.           ooooppppeeeerrrraaaattttoooorrrr<<<<====(const RWDate& d1, const RWDate& d2);
  619.  
  620.  
  621.      Returns TTTTRRRRUUUUEEEE if the date dddd1111 is before or the same as dddd2222.
  622.  
  623.               RWBoolean
  624.           ooooppppeeeerrrraaaattttoooorrrr>>>>(const RWDate& d1, const RWDate& d2);
  625.  
  626.  
  627.      Returns TTTTRRRRUUUUEEEE if the date dddd1111 is after dddd2222.
  628.  
  629.               RWBoolean
  630.           ooooppppeeeerrrraaaattttoooorrrr>>>>====(const RWDate& d1, const RWDate& d2);
  631.  
  632.  
  633.      Returns TTTTRRRRUUUUEEEE if the date  dddd1111 is after or the same as dddd2222.
  634.  
  635.               RWBoolean
  636.           ooooppppeeeerrrraaaattttoooorrrr========(const RWDate& d1, const RWDate& d2);
  637.  
  638.  
  639.      Returns TTTTRRRRUUUUEEEE if the date  dddd1111 is the same as tttt2222.
  640.  
  641.               RWBoolean
  642.           ooooppppeeeerrrraaaattttoooorrrr!!!!====(const RWDate& d1, const RWDate& d2);
  643.  
  644.  
  645.      Returns TTTTRRRRUUUUEEEE if the date dddd1111 is not the same as dddd2222.
  646.  
  647.               RWDate
  648.           ooooppppeeeerrrraaaattttoooorrrr++++(const RWDate& d, unsigned long s);
  649.           RWDate
  650.           ooooppppeeeerrrraaaattttoooorrrr++++(unsigned long s, const RWDate& d);
  651.  
  652.  
  653.      Returns the date ssss days in the future from the date dddd.
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))                                                      RRRRWWWWDDDDaaaatttteeee((((3333CCCC++++++++))))
  665.  
  666.  
  667.  
  668.               unsigned long
  669.           ooooppppeeeerrrraaaattttoooorrrr----(const RWDate& d1, const RWDate& d2);
  670.  
  671.  
  672.      If d1>d2, returns the number of days between dddd1111 and dddd2222. Otherwise, the
  673.      result is implementation defined.
  674.  
  675.               RWDate
  676.           ooooppppeeeerrrraaaattttoooorrrr----(const RWDate& d, unsigned long s);
  677.  
  678.  
  679.      Returns the date ssss days in the past from dddd.
  680.  
  681.               ostream&
  682.           ooooppppeeeerrrraaaattttoooorrrr<<<<<<<<(ostream& s, const RWDate& d);
  683.  
  684.  
  685.      Outputs the date dddd on oooossssttttrrrreeeeaaaammmm ssss, according to the locale imbued in the
  686.      stream (see class RRRRWWWWLLLLooooccccaaaalllleeee), or by RRRRWWWWLLLLooooccccaaaalllleeee::::::::gggglllloooobbbbaaaallll(((()))) if none.
  687.  
  688.               istream&
  689.           ooooppppeeeerrrraaaattttoooorrrr>>>>>>>>(istream& s, RWDate& t);
  690.  
  691.  
  692.      Reads tttt from iiiissssttttrrrreeeeaaaammmm ssss.  One full line is read, and the string contained
  693.      is converted according to the locale imbued in the stream (see class
  694.      RRRRWWWWLLLLooooccccaaaalllleeee), or by RRRRWWWWLLLLooooccccaaaalllleeee::::::::gggglllloooobbbbaaaallll(((()))) if none.  The function
  695.      RRRRWWWWDDDDaaaatttteeee::::::::iiiissssVVVVaaaalllliiiidddd(((()))) must be used to test whether the results are a valid
  696.      date.
  697.  
  698.               RWvostream&
  699.           ooooppppeeeerrrraaaattttoooorrrr<<<<<<<<(RWvostream&, const RWDate& date);
  700.           RWFile&
  701.           ooooppppeeeerrrraaaattttoooorrrr<<<<<<<<(RWFile&,     const RWDate& date);
  702.  
  703.  
  704.      Saves the date ddddaaaatttteeee to a virtual stream or RRRRWWWWFFFFiiiilllleeee, respectively.
  705.  
  706.               RWvistream&
  707.           ooooppppeeeerrrraaaattttoooorrrr>>>>>>>>(RWvistream&, RWDate& date);
  708.           RWFile&
  709.           ooooppppeeeerrrraaaattttoooorrrr>>>>>>>>(RWFile&,     RWDate& date);
  710.  
  711.  
  712.      Restores the date into ddddaaaatttteeee from a virtual stream or RRRRWWWWFFFFiiiilllleeee,
  713.      respectively, replacing the previous contents of ddddaaaatttteeee.
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.